﻿using System;
using Sharp.Domain.PlatformBoundedContext.WorkFlowModule.Engine.Common;
using Sharp.Domain.PlatformBoundedContext.WorkFlowModule.Engine.Xpdl;

namespace Sharp.Domain.PlatformBoundedContext.WorkFlowModule.Engine.Business.EntitySQLServer
{
    /// <summary>
    /// 任务视图类
    /// </summary>
    public class TaskViewEntity
    {
        public int Id { get; set; }

        public string AppName { get; set; }

        public string AppInstanceID { get; set; }

        public string AppInstanceCode { get; set; }

        public string ProcessName { get; set; }

        public string ProcessGUID { get; set; }

        public string Version { get; set; }

        public int ProcessInstanceID { get; set; }

        public string ActivityGUID { get; set; }

        public int ActivityInstanceID { get; set; }

        public string ActivityName { get; set; }

        public ActivityTypeEnum ActivityType { get; set; }

        public WorkItemTypeEnum WorkItemType { get; set; }

        public int? PreviousUserID { get; set; }          //上一步审核人ID

        public string PreviousUserName { get; set; }

        public DateTime? PreviousDateTime { get; set; }

        public TaskTypeEnum TaskType { get; set; }

        public Nullable<int> EntrustedTaskID { get; set; }        //被委托任务ID

        public string AssignedToUserID { get; set; }

        public string AssignedToUserName { get; set; }

        public DateTime? CreatedTime { get; set; }

        public Nullable<DateTime> LastUpdatedDateTime { get; set; }

        public Nullable<System.DateTime> EndedDateTime { get; set; }

        public string EndedByUserID { get; set; }

        public string EndedByUserName { get; set; }

        public TaskStateEnum TaskState { get; set; }

        public ActivityStateEnum ActivityState { get; set; }

        public byte RecordStatusInvalid { get; set; }

        public ProcessStateEnum ProcessState { get; set; }

        public ComplexTypeEnum ComplexType { get; set; }

        public Nullable<int> MIHostActivityInstanceID { get; set; }

        public int? PCreatedByUserID { get; set; }
        
        public string PCreatedByUserName { get; set; }

        public DateTime? PCreatdDateTime { get; set; }

        public short MiHostState { get; set; }


    }
}
